﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using PMServiceDesk.BusinessLogic;
using PMServiceDesk.DataType;
using PMServiceDesk.Utils.Interfaz;
using PMServiceDesk.Parameters.Constantes;

namespace PMServiceDesk.Web.AppCode
{
    public class ProyectoView
    {
        public List<ProyectoType> Proyectos { get; set; }
        public int TotalRegistros { get; set; }
    }

    public class ProyectoIU
    {
        public static ProyectoView Listar(ProyectoType registroBusqueda, int paginaActual, int cantidadMostrar, string orderBy)
        {
            ProyectoLogic logic = new ProyectoLogic();

            ProyectoView view = new ProyectoView();

            registroBusqueda.UsuarioJefeProyectoId = Sesion.Usuario.Id;

            view.Proyectos = logic.CargarExploradorPaginado(registroBusqueda, paginaActual, cantidadMostrar, orderBy);
            view.TotalRegistros = view.Proyectos.Capacity;

            return view;
        }

        public static string ExportarExcel(ProyectoType registroBusqueda, List<GridJSONField> gridFields)
        {
            ProyectoLogic logic = new ProyectoLogic();

            registroBusqueda.UsuarioJefeProyectoId = Sesion.Usuario.Id;

            List<ProyectoType> l = logic.CargarExploradorPaginado(registroBusqueda);

            return InterfazUtils.FileTableHTMLGridJSON(l, gridFields, ArchivoConfig.FileServer, Sesion.Usuario.Usuario, "Proyectos", ExtensionesArchivos.Excel2003);
        }

        public static ProyectoType Grabar(ProyectoType registro)
        {
            ProyectoLogic logic = new ProyectoLogic();

            logic.Grabar(registro);

            return registro;
        }
    }
}